/*
 * FSWUniCEUB - 2008
 * 
 * Este arquivo é de propriedade da Fábrica de Software do UniCEUB
 * 
 * Para mais informações entre em contato com a coordenação do
 * curso de Ciência da Computação da instituição.
 */

package br.uniceub.fsw.seguranca.vo;

import br.uniceub.fsw.seguranca.dao.ModuloDAO;

/**
 * Value Object da entidade módulo. Usada para transportar os dados
 * de um módulo através das várias classes do sistema.
 * 
 * Tabela: TB_Modulo
 *
 * @author Bruno Schifer Bernardi
 */
public class ModuloVO {
    /**
     * Identificador do modulo.
     * 
     * Coluna: ID_Modulo
     */
    private Integer idModulo;
    
    /**
     * Nome do modulo.
     * 
     * Coluna: NO_Modulo
     */
    private String noModulo;
    
    /**
     * Modulo pai.
     * 
     * Tabela referenciada: TB_Modulo
     * Coluna FK: CD_Modulo
     */
    private ModuloVO moduloPai;
    
    /**
     * Id do modulo pai.
     * 
     * Tabela referenciada: TB_Modulo
     * Coluna FK: CD_Modulo
     */
    private Integer cdModulo;
    
    /**
     * Descrição do modulo.
     * 
     * Coluna: DS_Modulo
     */
    private String dsModulo;

    /**
     * Descrição da chamada do modulo.
     * 
     * Coluna: DS_Chamada
     */
    private String dsChamada;

    /**
     * Status do modulo nos menus. 'S' aparece no menu. 'N' não aparece.
     * 
     * Coluna: ST_Ativo
     */
    private String stAtivo;

    /*
     * Getters e Setters.
     * Estes métodos não devem conter nenhuma codificação fora da geração automática.
     * Não é necessária a geração de javadoc para esses métodos.
     */
    public Integer getCdModulo() {
        return cdModulo;
    }

    public void setCdModulo(Integer cdModulo) {
        this.cdModulo = cdModulo;
    }

    public String getStAtivo() {
        return stAtivo;
    }

    public void setStAtivo(String stAtivo) {
        this.stAtivo = stAtivo;
    }

    public String getDsChamada() {
        return dsChamada;
    }

    public void setDsChamada(String dsChamada) {
        this.dsChamada = dsChamada;
    }

    public String getDsModulo() {
        return dsModulo;
    }

    public void setDsModulo(String dsModulo) {
        this.dsModulo = dsModulo;
    }

    public Integer getIdModulo() {
        return idModulo;
    }

    public void setIdModulo(Integer idModulo) {
        this.idModulo = idModulo;
    }

    public ModuloVO getModuloPai() {
        if(moduloPai == null && cdModulo != null) {
            moduloPai = new ModuloDAO().consultarPorId(cdModulo);
        }
        return moduloPai;
    }

    public void setModuloPai(ModuloVO moduloPai) {
        this.moduloPai = moduloPai;
    }

    public String getNoModulo() {
        return noModulo;
    }

    public void setNoModulo(String noModulo) {
        this.noModulo = noModulo;
    }
}
